/*
 * DatosArriboNave.h
 *
 *  Created on: 02/02/2010
 *      Author: San Martín, Matías I.
 */

#ifndef DATOSARRIBONAVE_H_
#define DATOSARRIBONAVE_H_

#include "DatosMensaje.h"

#include <sstream>

#include "../../../Middleware/Common/IdFlota.h"

namespace aplicacion {

class DatosArriboNave: public aplicacion::DatosMensaje {

//------------------------------ CONSTANTES ------------------------------
public:

//------------------------------ ATRIBUTOS ------------------------------
public:
	/** identificador de la flota a la que pertenecen las naves que arribaron */
	IdFlota _idFlota;

	/** cantidad restante de naves en la flota */
	size_t	_cantidadNavesFlota;

//------------------------------ METODOS ------------------------------
public:
	DatosArriboNave();
	virtual ~DatosArriboNave();

	virtual std::string toString() const;

	virtual t_tipoMensaje getTipo()
	{
		return ARRIBO_NAVE;
	}

	//-------------------- de interfaz framework::io::SerializableToFile
	/**
	 * @see framework::io::SerializableToFile#save(int)
	 */
	virtual size_t save (int fd) const;

	/**
	 * @see framework::io::SerializableToFile#load(int)
	 */
	virtual size_t load (int fd);

	/**
	 * @see middleware::io::SerializableToArray#saveToArray(int)
	 */
	virtual size_t saveToArray (uint8_t* arr) const;

	/**
	 * @see middleware::io::SerializableToArray#loadFromArray(int)
	 */
	virtual size_t loadFromArray (const uint8_t* arr);
};

}//namespace aplicacion

#endif /* DATOSARRIBONAVE_H_ */
